package com.hundsun.cprs.yyt.service.plate.dao;

import java.util.List;

import com.hundsun.cprs.yyt.service.plate.domain.Plate;
import com.hundsun.cprs.yyt.service.plate.domain.PlateInfo;
import com.hundsun.cprs.yyt.service.plate.domain.query.PlateQuery;
import org.apache.ibatis.annotations.Param;

public abstract interface PlateDao {
	/**
	 * 根据查询对象分页查询板块总数量
	 * @param query
	 * 
	 */
	public abstract int selectPlateCount(PlateQuery query);
	/**
	 * 根据查询对象分页查询板块
	 * @param query
	 * 
	 */
	public abstract List<Plate> selectPlateByPage(@Param("query")PlateQuery query, @Param("start")int startIndex, @Param("end")int pageNum);
	
	/**
	 * 创建板块
	 * @param plate
	 * 
	 */
	public abstract Long createPlate(Plate plate);
	/**
	 * 修改板块
	 * @param plate
	 * 
	 */
	public abstract Long updatePlate(Plate plate);
	/**
	 * 删除板块
	 * @param plate
	 * 
	 */
	public abstract Long deletePlate(Plate plate);
	/**
	 * 查询板块列表
	 * @param query
	 * 
	 */
	public abstract List<Plate> selectPlateList(PlateQuery query);
	/**
	 * 从sequence中获取唯一id
	 * 
	 * */
	public abstract Long selectProjectPlateId();
	/**
	 * 根据专场的排序号查找专场，用于判断排序号是否重复
	 * 
	 * */
	public abstract List<Plate> selectPlateBySort(Long plateSort);
	/**
	 * 根据专场的编码查找专场，用于判断专场编码是否重复
	 * 
	 * */
	public abstract List<Plate> selectPlateByCode(String plateCode);
	/**
	 * 根据id查询板块信息
	 * 
	 * */
	public abstract Plate selectPlateById(@Param("id") Long id);
	
	PlateInfo selectPlateInfoById(Long id);
	/**
	 * 查询板块在首页轮播列表
	 * 
	 */
	public abstract List<Plate> selectTopShowList();

    public Plate selectPlateByOneCode(String plateCode);

    List<Plate> getPlateList();
}
